/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package View;

import Dao.SistemaDAO;
import Modelo.*;
import Util.PAPUtil;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.swing.JTextField;

/**
 *
 * @author Michael
 */
public class CadReceita extends javax.swing.JFrame {

    PAPUtil papUtil = new PAPUtil();
    SistemaDAO sisDAO = new SistemaDAO();
    List<Produto> lista = new ArrayList<Produto>();
    Produto produto = new Produto();
    List<Paciente> ArrayPac = new ArrayList<Paciente>();
    List<Medico> ArrayMed = new ArrayList<Medico>();
    Receita rec = new Receita();
    LocReceita locRec = new LocReceita(null);
    ArrayList<ItemReceita> listaRec = new ArrayList<ItemReceita>();

    public CadReceita(CadAtendimento cadAtend, Paciente pac, Medico med) {
        initComponents();
inicializaTelaLocRec(null, null, false, med, pac);
        }

    public CadReceita(LocReceita locRec, Receita rec, boolean novo, Medico med, Paciente pac) {
        initComponents();
        //novo = true;
        inicializaTelaLocRec(locRec, rec, novo, med, pac);

    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel2 = new javax.swing.JPanel();
        jPanel1 = new javax.swing.JPanel();
        jBtCancelaReceita = new javax.swing.JButton();
        jButtonGravar1 = new javax.swing.JButton();
        jLayeredPane1 = new javax.swing.JLayeredPane();
        jLabel5 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();
        jTxtDosagem = new javax.swing.JTextField();
        jTxtHorario = new javax.swing.JTextField();
        jLabel6 = new javax.swing.JLabel();
        jTxtProduto = new javax.swing.JTextField();
        jTxtQtd = new javax.swing.JTextField();
        jScrollPaneProduto = new javax.swing.JScrollPane();
        jTbProduto = new javax.swing.JTable();
        jLabel3 = new javax.swing.JLabel();
        jScrollPane3 = new javax.swing.JScrollPane();
        jTbReceita = new javax.swing.JTable();
        jLabel4 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        jTxtCdCliente = new javax.swing.JTextField();
        jTxtCliente = new javax.swing.JTextField();
        jTxtCdMedico = new javax.swing.JTextField();
        jTxtmedico = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        jLabel9 = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setBackground(new java.awt.Color(255, 255, 255));

        jPanel2.setBackground(new java.awt.Color(255, 255, 255));

        jPanel1.setBackground(new java.awt.Color(255, 255, 255));
        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Receita", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 0, 12))); // NOI18N

        jBtCancelaReceita.setBackground(new java.awt.Color(255, 255, 255));
        jBtCancelaReceita.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N
        jBtCancelaReceita.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/X.png"))); // NOI18N
        jBtCancelaReceita.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        jBtCancelaReceita.setBorderPainted(false);
        jBtCancelaReceita.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBtCancelaReceitaActionPerformed(evt);
            }
        });

        jButtonGravar1.setBackground(new java.awt.Color(255, 255, 255));
        jButtonGravar1.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N
        jButtonGravar1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/V.png"))); // NOI18N
        jButtonGravar1.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        jButtonGravar1.setBorderPainted(false);
        jButtonGravar1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonGravar1ActionPerformed(evt);
            }
        });

        jLabel5.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N
        jLabel5.setText("Quantidade");
        jLabel5.setBounds(450, 10, 70, 15);
        jLayeredPane1.add(jLabel5, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLabel7.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N
        jLabel7.setText("Horarios");
        jLabel7.setBounds(610, 10, 60, 15);
        jLayeredPane1.add(jLabel7, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jTxtDosagem.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                jTxtDosagemFocusLost(evt);
            }
        });
        jTxtDosagem.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jTxtDosagemKeyPressed(evt);
            }
            public void keyTyped(java.awt.event.KeyEvent evt) {
                jTxtDosagemKeyTyped(evt);
            }
        });
        jTxtDosagem.setBounds(530, 30, 60, 30);
        jLayeredPane1.add(jTxtDosagem, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jTxtHorario.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                jTxtHorarioFocusLost(evt);
            }
        });
        jTxtHorario.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jTxtHorarioKeyPressed(evt);
            }
        });
        jTxtHorario.setBounds(610, 30, 50, 30);
        jLayeredPane1.add(jTxtHorario, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLabel6.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N
        jLabel6.setText("Dosagem");
        jLabel6.setBounds(530, 10, 70, 15);
        jLayeredPane1.add(jLabel6, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jTxtProduto.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jTxtProdutoKeyPressed(evt);
            }
            public void keyReleased(java.awt.event.KeyEvent evt) {
                jTxtProdutoKeyReleased(evt);
            }
        });
        jTxtProduto.setBounds(30, 30, 410, 30);
        jLayeredPane1.add(jTxtProduto, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jTxtQtd.setText("1");
        jTxtQtd.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                jTxtQtdFocusLost(evt);
            }
        });
        jTxtQtd.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jTxtQtdKeyPressed(evt);
            }
            public void keyTyped(java.awt.event.KeyEvent evt) {
                jTxtQtdKeyTyped(evt);
            }
        });
        jTxtQtd.setBounds(450, 30, 60, 30);
        jLayeredPane1.add(jTxtQtd, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jTbProduto.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Código", "Produto", "Qtd", "TipoDos", "Tipo"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, true, true, true
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jTbProduto.setGridColor(new java.awt.Color(255, 255, 255));
        jTbProduto.getTableHeader().setReorderingAllowed(false);
        jTbProduto.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jTbProdutoKeyPressed(evt);
            }
        });
        jScrollPaneProduto.setViewportView(jTbProduto);
        jTbProduto.getColumnModel().getColumn(0).setMinWidth(45);
        jTbProduto.getColumnModel().getColumn(0).setMaxWidth(45);
        jTbProduto.getColumnModel().getColumn(2).setMinWidth(45);
        jTbProduto.getColumnModel().getColumn(2).setMaxWidth(45);
        jTbProduto.getColumnModel().getColumn(3).setMinWidth(50);
        jTbProduto.getColumnModel().getColumn(3).setMaxWidth(50);
        jTbProduto.getColumnModel().getColumn(4).setMinWidth(65);
        jTbProduto.getColumnModel().getColumn(4).setMaxWidth(65);

        jScrollPaneProduto.setBounds(30, 60, 410, 108);
        jLayeredPane1.add(jScrollPaneProduto, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLabel3.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N
        jLabel3.setText("Produto");
        jLabel3.setBounds(30, 10, 70, 15);
        jLayeredPane1.add(jLabel3, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jTbReceita.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Qtd", "Nome", "Dosagem", "Horarios"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jTbReceita.setGridColor(new java.awt.Color(255, 255, 255));
        jTbReceita.getTableHeader().setReorderingAllowed(false);
        jTbReceita.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTbReceitaMouseClicked(evt);
            }
        });
        jScrollPane3.setViewportView(jTbReceita);

        jScrollPane3.setBounds(30, 78, 630, 140);
        jLayeredPane1.add(jScrollPane3, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLabel4.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N
        jLabel4.setText("Código");

        jLabel8.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N
        jLabel8.setText("Cliente");

        jLabel2.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N
        jLabel2.setText("Código");

        jLabel9.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N
        jLabel9.setText("Médico");

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(32, 32, 32)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(jTxtCdMedico)
                            .addComponent(jTxtCdCliente)
                            .addComponent(jLabel2))
                        .addGap(18, 18, 18)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(jLabel9)
                            .addComponent(jTxtmedico, javax.swing.GroupLayout.DEFAULT_SIZE, 179, Short.MAX_VALUE)
                            .addComponent(jTxtCliente))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 260, Short.MAX_VALUE)
                        .addComponent(jBtCancelaReceita)
                        .addGap(18, 18, 18)
                        .addComponent(jButtonGravar1)
                        .addGap(39, 39, 39))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addContainerGap())))
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addComponent(jLayeredPane1)
                .addContainerGap())
        );

        jPanel1Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jBtCancelaReceita, jButtonGravar1});

        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addComponent(jLayeredPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 240, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel4)
                    .addComponent(jLabel8))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jTxtCdCliente, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jTxtCliente, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel2)
                            .addComponent(jLabel9))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jTxtCdMedico, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jTxtmedico, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jBtCancelaReceita, javax.swing.GroupLayout.PREFERRED_SIZE, 51, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jButtonGravar1, javax.swing.GroupLayout.PREFERRED_SIZE, 51, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(0, 0, Short.MAX_VALUE)))
                .addContainerGap())
        );

        jPanel1Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jBtCancelaReceita, jButtonGravar1});

        jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/receita.jpg"))); // NOI18N

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                .addContainerGap(17, Short.MAX_VALUE)
                .addComponent(jLabel1)
                .addGap(14, 14, 14)
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(31, 31, 31))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addGap(76, 76, 76)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 343, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(114, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jBtCancelaReceitaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtCancelaReceitaActionPerformed
        this.dispose();
    }//GEN-LAST:event_jBtCancelaReceitaActionPerformed

    private void jTxtProdutoKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTxtProdutoKeyReleased
        if (evt.getKeyCode() == 40) {
            // setModelColumn();
            jTbProduto.requestFocus();
        } else {
            if (jTxtProduto.getText().length() >= 3) {
                String[] group = null;
                String[] order = {"descricao"};

                lista = (ArrayList<Produto>) sisDAO.listaCondicao("Modelo.Produto", jTxtProduto.getText(), group, order, "descricao", 1);
                setModelColumn();
                for (Produto prod : lista) {
                    TabelaProduto lm = (TabelaProduto) jTbProduto.getModel();
                    lm.addProduto(prod);
                }
                if (lista.size() > 0) {
                    jScrollPaneProduto.setVisible(true);
                } else {
                    jScrollPaneProduto.setVisible(false);
                }
            }

        }

    }//GEN-LAST:event_jTxtProdutoKeyReleased

    private void jTbProdutoKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTbProdutoKeyPressed

        if (evt.getExtendedKeyCode() == 27) {
            jScrollPaneProduto.setVisible(false);
            jTxtProduto.requestFocus();
        }

        if (evt.getExtendedKeyCode() == 10) {
            TabelaProduto lm = (TabelaProduto) jTbProduto.getModel();
            produto = lm.getSelectedProduto(jTbProduto.getSelectedRow());

            jTxtProduto.setText(produto.getDescricao());
            jScrollPaneProduto.setVisible(false);
            jTxtQtd.requestFocus();
        }
    }//GEN-LAST:event_jTbProdutoKeyPressed

    public boolean verifikaCampo(JTextField jtxtAtual, JTextField jtxtProximo) {
        if (!papUtil.verificaBranco(jtxtAtual.getText())) {
            jtxtAtual.requestFocus();
        } else {
            jtxtProximo.requestFocus();
            return true;
        }
        return false;
    }

    private void jTxtQtdKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTxtQtdKeyPressed
        if (evt.getExtendedKeyCode() == 10) {
            verifikaCampo(jTxtQtd, jTxtDosagem);
        }
    }//GEN-LAST:event_jTxtQtdKeyPressed

    private void jTxtQtdKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTxtQtdKeyTyped
        if (!papUtil.somenteNumero(evt, '0')) {
            evt.consume();
        }
    }//GEN-LAST:event_jTxtQtdKeyTyped

    private void jTxtDosagemKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTxtDosagemKeyTyped
        if (!papUtil.somenteNumero(evt, '0')) {
            evt.consume();
        }
    }//GEN-LAST:event_jTxtDosagemKeyTyped

    private void jTxtDosagemKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTxtDosagemKeyPressed

        if (evt.getExtendedKeyCode() == 10) {
            verifikaCampo(jTxtDosagem, jTxtHorario);
        }
    }//GEN-LAST:event_jTxtDosagemKeyPressed

    private void jTxtHorarioKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTxtHorarioKeyPressed
        if (evt.getExtendedKeyCode() == 10) {

            if (verifikaCampo(jTxtHorario, jTxtProduto)) {
                addTabela();
            }
        }
    }//GEN-LAST:event_jTxtHorarioKeyPressed

    private void jTxtQtdFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jTxtQtdFocusLost
        verifikaCampo(jTxtQtd, jTxtDosagem);
    }//GEN-LAST:event_jTxtQtdFocusLost

    private void jTxtDosagemFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jTxtDosagemFocusLost
        verifikaCampo(jTxtDosagem, jTxtHorario);
    }//GEN-LAST:event_jTxtDosagemFocusLost

    private void jTxtHorarioFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jTxtHorarioFocusLost
        //if(verifikaCampo(jTxtHorario, jTxtProduto)){
        // addTabela();
        // }
    }//GEN-LAST:event_jTxtHorarioFocusLost

    private void jButtonGravar1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonGravar1ActionPerformed

        Receita receita = new Receita();
        receita.setMedicoIdmedico(Integer.parseInt(jTxtCdMedico.getText()));
        receita.setPacienteIdpaciente(Integer.parseInt(jTxtCdCliente.getText()));
        receita.setDataRec(getDateTime());

        int idreceita = sisDAO.ultimoCodigo("Modelo.Receita", "idreceita") + 1;

        sisDAO.addUpObjeto(receita);

        TabelaReceita lm = (TabelaReceita) jTbReceita.getModel();
        listaRec = lm.getLista();
        for (ItemReceita item : listaRec) {
            item.setReceitaIdreceita(idreceita);
            sisDAO.addUpObjeto(item);
        }
        limpaCampos(true);
        Mensagem msn = new Mensagem(this, "Receita Cadastrada Com Susseço", "ok");
        msn.setVisible(true);
    }//GEN-LAST:event_jButtonGravar1ActionPerformed

    private void jTxtProdutoKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTxtProdutoKeyPressed
        if (evt.getExtendedKeyCode() == 10) {
            if (!papUtil.verificaBranco(jTxtProduto.getText())) {
            } else {
                String[] group = null;
                String[] order = null;

                if (jTxtProduto.getText().length() < 13) {
                    lista = (ArrayList<Produto>) sisDAO.listaCondicao("Modelo.Produto", jTxtProduto.getText(), group, order, "idproduto", 0);
                    for (Produto prod : lista) {
                        produto = prod;
                        jTxtProduto.setText(prod.getDescricao());
                        jTxtQtd.requestFocus();
                    }
                } else if (jTxtProduto.getText().length() == 13) {
                    lista = (ArrayList<Produto>) sisDAO.listaCondicao("Modelo.Produto", jTxtProduto.getText(), group, order, "codbarra", 1);
                    for (Produto prod : lista) {
                        produto = prod;
                        jTxtProduto.setText(prod.getDescricao());
                        jTxtQtd.requestFocus();
                    }
                }

                jTxtQtd.requestFocus();

            }
        }
    }//GEN-LAST:event_jTxtProdutoKeyPressed

    private void jTbReceitaMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTbReceitaMouseClicked
        if (evt.getClickCount() == 2) {
            TabelaReceita lm = (TabelaReceita) jTbReceita.getModel();
            lm.removeItemRec(jTbReceita.getSelectedRow());
        }
    }//GEN-LAST:event_jTbReceitaMouseClicked

    public void addTabela() {
        TabelaReceita lm = (TabelaReceita) jTbReceita.getModel();
        lm.addItemRec(getCampos(false));
        limpaCampos(false);
    }

    public void limpaCampos(boolean exit) {
        jTxtProduto.setText("");
        jTxtDosagem.setText("");
        jTxtHorario.setText("");
        jTxtQtd.setText("1");
        jTxtProduto.setText("");
        if (exit) {
            jTxtCdMedico.setText("");
            jTxtmedico.setText("");
            jTxtCdCliente.setText("");
            jTxtCliente.setText("");
            setModelColumnRecita();

        }

    }

    public ItemReceita getCampos(boolean exit) {
        ItemReceita itemReceita = new ItemReceita();

        String[] cd = produto.toArray();
        String f = cd[1] + " " + cd[2] + cd[3] + " " + cd[4];
        itemReceita.setDescprod(f);

        itemReceita.setProdutoIdproduto(produto.getIdproduto());
        itemReceita.setHorarios(jTxtHorario.getText());
        itemReceita.setQtdCaixas(Integer.parseInt(jTxtQtd.getText()));
        itemReceita.setQtdPresc(Integer.parseInt(jTxtDosagem.getText()));

        return itemReceita;
    }

    public void setModelColumnRecita() {
        jTbReceita.setModel(new TabelaReceita());
        jTbReceita.getColumnModel().getColumn(0).setPreferredWidth(50);
        jTbReceita.getColumnModel().getColumn(1).setPreferredWidth(250);
        jTbReceita.getColumnModel().getColumn(2).setPreferredWidth(55);
        jTbReceita.getColumnModel().getColumn(3).setPreferredWidth(55);
        jTbReceita.getColumnModel().getColumn(4).setPreferredWidth(55);
    }

    public void setModelColumn() {
        jTbProduto.setModel(new TabelaProduto());
        jTbProduto.getColumnModel().getColumn(0).setPreferredWidth(45);
        jTbProduto.getColumnModel().getColumn(1).setPreferredWidth(150);
        jTbProduto.getColumnModel().getColumn(2).setPreferredWidth(35);
        jTbProduto.getColumnModel().getColumn(3).setPreferredWidth(55);
        jTbProduto.getColumnModel().getColumn(4).setPreferredWidth(60);
    }

    private Date getDateTime() {
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        //HH:mm:ss"
        Date date = new Date();
        return date;//dateFormat.format(date);
    }

    public void inicializaTelaLocRec(LocReceita locRec, Receita rec, boolean novo, Medico med, Paciente pac) {
        if (novo) {

            setModelColumnRecita();
            jButtonGravar1.setEnabled(false);
            jTxtQtd.setEnabled(false);
            jTbReceita.setEnabled(false);
            jTxtDosagem.setEnabled(false);
            jTxtHorario.setEnabled(false);
            jTxtProduto.setEnabled(false);
            jScrollPaneProduto.setVisible(false);
            jTxtCdCliente.setEnabled(false);
            jTxtCliente.setEnabled(false);
            jTxtCdMedico.setEnabled(false);
            jTxtmedico.setEnabled(false);
            this.locRec = locRec;
            this.rec = rec;
            ArrayPac = (ArrayList<Paciente>) sisDAO.listaCondicao("Modelo.Paciente", String.valueOf(this.rec.getPacienteIdpaciente()), null, null, "idpaciente", 0);
            ArrayMed = (ArrayList<Medico>) sisDAO.listaCondicao("Modelo.Medico", String.valueOf(this.rec.getMedicoIdmedico()), null, null, "idmedico", 0);
            listaRec = (ArrayList<ItemReceita>) sisDAO.listaCondicao("Modelo.ItemReceita", String.valueOf(this.rec.getIdreceita()), null, null, "receita_idreceita", 0);
            pac = ArrayPac.get(0);
            med = ArrayMed.get(0);
            jTxtCdCliente.setText(String.valueOf(pac.getIdpaciente()));
            jTxtCliente.setText(pac.getNome());
            jTxtCdMedico.setText(String.valueOf(med.getIdmedico()));
            jTxtmedico.setText(med.getNome());
            TabelaReceita lm = (TabelaReceita) jTbReceita.getModel();
            lm.addArrayItemRec(listaRec);
            

        }else{        
        setModelColumnRecita();
        jTxtCdCliente.setText(String.valueOf(pac.getIdpaciente()));
        jTxtCliente.setText(pac.getNome());
        jTxtCdMedico.setText(String.valueOf(med.getIdmedico()));
        jTxtmedico.setText(med.getNome());
        jScrollPaneProduto.setVisible(false);
        jTxtCdCliente.setEnabled(false);
        jTxtCliente.setEnabled(false);
        jTxtCdMedico.setEnabled(false);
        jTxtmedico.setEnabled(false);
        }
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jBtCancelaReceita;
    private javax.swing.JButton jButtonGravar1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JLayeredPane jLayeredPane1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JScrollPane jScrollPaneProduto;
    private javax.swing.JTable jTbProduto;
    private javax.swing.JTable jTbReceita;
    private javax.swing.JTextField jTxtCdCliente;
    private javax.swing.JTextField jTxtCdMedico;
    private javax.swing.JTextField jTxtCliente;
    private javax.swing.JTextField jTxtDosagem;
    private javax.swing.JTextField jTxtHorario;
    private javax.swing.JTextField jTxtProduto;
    private javax.swing.JTextField jTxtQtd;
    private javax.swing.JTextField jTxtmedico;
    // End of variables declaration//GEN-END:variables
}
